﻿/**
 * @name umi 的路由配置
 * @description 只支持 path,component,routes,redirect,wrappers,name,icon 的配置
 * @param path  path 只支持两种占位符配置，第一种是动态参数 :id 的形式，第二种是 * 通配符，通配符只能出现路由字符串的最后。
 * @param component 配置 location 和 path 匹配后用于渲染的 React 组件路径。可以是绝对路径，也可以是相对路径，如果是相对路径，会从 src/pages 开始找起。
 * @param routes 配置子路由，通常在需要为多个路径增加 layout 组件时使用。
 * @param redirect 配置路由跳转
 * @param wrappers 配置路由组件的包装组件，通过包装组件可以为当前的路由组件组合进更多的功能。 比如，可以用于路由级别的权限校验
 * @param name 配置路由的标题，默认读取国际化文件 menu.ts 中 menu.xxxx 的值，如配置 name 为 login，则读取 menu.ts 中 menu.login 的取值作为标题
 * @param icon 配置路由的图标，取值参考 https://ant.design/components/icon-cn， 注意去除风格后缀和大小写，如想要配置图标为 <StepBackwardOutlined /> 则取值应为 stepBackward 或 StepBackward，如想要配置图标为 <UserOutlined /> 则取值应为 user 或者 User
 * @doc https://umijs.org/docs/guides/routes
 */
export default [
  {
    path: '/user',
    layout: false,
    routes: [
      {
        name: 'login',
        path: '/user/login',
        component: './User/Login',
      },
    ],
  },
  {
    path: '/welcome',
    name: 'welcome',
    icon: 'smile',
    component: './Welcome',
  },
  // {
  //   path: '/admin',
  //   name: 'admin',
  //   icon: 'crown',
  //   access: 'canAdmin',
  //   routes: [
  //     {
  //       path: '/admin',
  //       redirect: '/admin/sub-page',
  //     },
  //     {
  //       path: '/admin/sub-page',
  //       name: 'sub-page',
  //       component: './Admin',
  //     },
  //   ],
  // },
  {
    path: '/dashboard',
    name: 'dashboard',
    icon: 'barChart',
    // access: 'canAdmin',
    routes: [
      {
        path: '/dashboard',
        redirect: '/dashboard/management',
      },
      {
        path: '/dashboard/management',
        name: 'management',
        component: './Dashboard/Management',
      },
    ],
  },
  {
    path: '/order',
    name: 'order',
    icon: 'accountBook',
    access: 'canMenuAuth',
    code: 'order:management',
    routes: [
      {
        path: '/order',
        redirect: '/order/management',
      },
      {
        path: '/order/management',
        name: 'management',
        component: './Order/Management',
        access: 'canMenuAuth',
        code: 'order:list',
      },
      {
        path: '/order/management/createOrUpdate',
        component: './Order/Management/CreateOrUpdate',
      },
    ],
  },
  {
    path: '/customer',
    name: 'customer',
    icon: 'user',
    access: 'canMenuAuth',
    code: 'customer:management',
    routes: [
      {
        path: '/customer',
        redirect: '/customer/management',
      },
      {
        path: '/customer/management',
        name: 'management',
        component: './Customer/Management',
        access: 'canMenuAuth',
        code: 'customer:list',
      },
      {
        path: '/customer/address',
        name: 'address',
        component: './Customer/Address',
        access: 'canMenuAuth',
        code: 'customer:address:list',
      },
    ],
  },
  {
    path: '/worker',
    name: 'worker',
    icon: 'team',
    access: 'canMenuAuth',
    code: 'worker:management',
    routes: [
      {
        path: '/worker',
        redirect: '/worker/management',
      },
      {
        path: '/worker/management',
        name: 'management',
        component: './Worker/Management',
        access: 'canMenuAuth',
        code: 'worker:list',
      },
      {
        path: '/worker/equipment',
        name: 'equipment',
        component: './Worker/Equipment',
        access: 'canMenuAuth',
        code: 'worker:equipment:list',
      },
    ],
  },
  {
    path: '/store',
    name: 'store',
    icon: 'home',
    access: 'canMenuAuth',
    code: 'store:management',
    routes: [
      {
        path: '/store',
        redirect: '/store/management',
      },
      {
        path: '/store/management',
        name: 'management',
        component: './Store/Management',
        access: 'canMenuAuth',
        code: 'store:list',
      },
    ],
  },
  {
    path: '/dispatch',
    name: 'dispatch',
    icon: 'clockCircle',
    access: 'canMenuAuth',
    code: 'dispatch:management',
    routes: [
      {
        path: '/dispatch',
        redirect: '/dispatch/management',
      },
      {
        path: '/dispatch/management',
        name: 'management',
        component: './Dispatch/Management',
        access: 'canMenuAuth',
        code: 'dispatch:list',
      },
      {
        path: '/dispatch/order',
        component: './Dispatch/Order',
        access: 'canMenuAuth',
        code: 'dispatch:order',
      },
      {
        path: '/dispatch/workTime',
        name: 'workTime',
        component: './Dispatch/WorkTime',
        access: 'canMenuAuth',
        code: 'worktime:list',
      },
    ],
  },
  {
    path: '/finance',
    name: 'finance',
    icon: 'moneyCollect',
    access: 'canMenuAuth',
    code: 'finance:management',
    routes: [
      {
        path: '/finance',
        redirect: '/finance/management',
      },
      {
        path: '/finance/management',
        name: 'management',
        component: './Finance/Management',
        access: 'canMenuAuth',
        code: 'check:list',
      },
      {
        path: '/finance/payRecord',
        name: 'payRecord',
        component: './Finance/PayRecord',
        access: 'canMenuAuth',
        code: 'pay:list',
      },
      {
        path: '/finance/userWallet',
        name: 'userWallet',
        component: './Finance/UserWallet',
        access: 'canMenuAuth',
        code: 'store:wallet:list',
      },
      {
        path: '/finance/userWalletRecord',
        name: 'userWalletRecord',
        component: './Finance/UserWalletRecord',
        access: 'canMenuAuth',
        code: 'store:walletLog:list',
      },
      {
        path: '/finance/workerWallet',
        name: 'workerWallet',
        component: './Finance/WorkerWallet',
        access: 'canMenuAuth',
        code: 'worker:wallet:list',
      },
      {
        path: '/finance/workerWalletRecord',
        name: 'workerWalletRecord',
        component: './Finance/WorkerWalletRecord',
        access: 'canMenuAuth',
        code: 'worker:walletLog:list',
      },
    ],
  },
  {
    path: '/inventory',
    name: 'inventory',
    icon: 'AlignCenter',
    // access: 'canAdmin',
    access: 'canMenuAuth',
    code: 'inventory:management',
    routes: [
      {
        path: '/inventory',
        redirect: '/inventory/management',
      },
      {
        path: '/inventory/management',
        name: 'management',
        component: './Inventory/Management',
        access: 'canMenuAuth',
        code: 'inventory:list',
      },
      {
        path: '/inventory/record',
        name: 'record',
        component: './Inventory/Record',
        access: 'canMenuAuth',
        code: 'inventoryLog:list',
      },
    ],
  },
  {
    path: '/other',
    name: 'other',
    icon: 'bulb',
    access: 'canMenuAuth',
    code: 'other:management',
    routes: [
      {
        path: '/other',
        redirect: '/other/shortMessage',
      },
      {
        path: '/other/shortMessage',
        name: 'shortMessage',
        component: './Other/ShortMessage',
        access: 'canMenuAuth',
        code: 'short:list',
      },
      {
        path: '/other/unipush2',
        name: 'unipush2',
        component: './Other/Unipush2',
        access: 'canMenuAuth',
        code: 'unipush2:list',
      },
    ],
  },
  {
    path: '/config',
    name: 'config',
    icon: 'api',
    access: 'canMenuAuth',
    code: 'config:management',
    routes: [
      {
        path: '/config',
        redirect: '/config/productType',
      },
      {
        path: '/config/product',
        name: 'product',
        component: './Config/Product',
        access: 'canMenuAuth',
        code: 'product:list',
      },
      {
        path: '/config/productType',
        name: 'productType',
        component: './Config/ProductType',
        access: 'canMenuAuth',
        code: 'productType:list',
      },
      {
        path: '/config/city',
        name: 'city',
        component: './Config/City',
        access: 'canMenuAuth',
        code: 'city:list',
      },
      {
        path: '/config/dict',
        name: 'dict',
        access: 'canAdmin',
        component: './Config/Dict',
      },
      {
        path: '/config/app',
        name: 'app',
        access: 'canAdmin',
        component: './Config/App',
      },
      // {
      //   path: '/config/management',
      //   name: 'management',
      //   component: './Config/Management',
      // },
    ],
  },
  {
    path: '/sys',
    name: 'sys',
    icon: 'setting',
    access: 'canMenuAuth',
    code: 'sys:management',
    routes: [
      {
        path: '/sys',
        redirect: '/sys/user',
      },
      {
        path: '/sys/user',
        name: 'user',
        component: './Sys/User',
        access: 'canMenuAuth',
        code: 'user:list',
      },
      {
        path: '/sys/role',
        name: 'role',
        component: './Sys/Role',
        access: 'canAdmin',
      },
      {
        path: '/sys/authority',
        access: 'canAdmin',
        name: 'authority',
        component: './Sys/Authority',
      },
      {
        path: '/sys/config',
        name: 'config',
        access: 'canAdmin',
        component: './Sys/Config',
      },
    ],
  },
  {
    path: '/user',
    name: 'user',
    icon: 'user',
    // access: 'canAdmin',
    routes: [
      {
        path: '/user',
        redirect: '/user/center',
      },
      {
        path: '/user/center',
        name: 'center',
        component: './User/Center',
      },
    ],
  },
  // {
  //   name: 'list.table-list',
  //   icon: 'table',
  //   path: '/list',
  //   component: './TableList',
  // },
  {
    path: '/',
    redirect: '/welcome',
  },
  {
    path: '*',
    layout: false,
    component: './404',
  },
];
